package com.my.redisson.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Objects;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class DelayEvent {
    /**
     * 事件业务ID  同一group下相同的bizType和bizId被认为是同一个事件
     */
    private String bizId;
    /**
     * 事件业务类型
     */
    private String bizType;
    /**
     * 事件延迟时间 毫秒
     */
    private Long delayTime;
    /**
     * 事件预计触发时间 毫秒时间戳
     */
    private Long onTime;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        DelayEvent event = (DelayEvent) o;
        return Objects.equals(bizId, event.bizId) && Objects.equals(bizType, event.bizType);
    }

    @Override
    public int hashCode() {
        return Objects.hash(bizId, bizType);
    }
}
